package cn.org.xwb.common.config;

import cn.org.xwb.common.encrypt.dto.RsaKeyPair;
import cn.org.xwb.common.encrypt.utils.RsaUtil;
import lombok.extern.log4j.Log4j2;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * RSA 加密相关配置类
 */
@Log4j2
@Configuration
public class RsaConfig {

    /**
     * 为运行的项目中配置一个全局的通用的 RSA 密钥对，
     * 该密钥对用于公共的数据的加密解密，如用户登录时，
     * 密码的加密解密
     *
     * @return 一个全局的通用的 RSA 密钥对
     */
    @Bean
    public RsaKeyPair rsaCommonKeyPair() {
        RsaKeyPair rsaKeyPair = null;
        try {
            rsaKeyPair = new RsaKeyPair();
            // 利用工具类生成 RSA 密钥对
            rsaKeyPair.setKeyPair(RsaUtil.generateRSAKeyPairStr());
        } catch (Exception e) {
            log.error("项目启动中配置全局的通用的 RSA 密钥对失败，\n错误信息：{}，\nerror：{}", e.getMessage(), e);
        }
        return rsaKeyPair;
    }

}
